home *** CD-ROM | disk | FTP | other *** search
/ Scene 96 / Scene 96 International Edition (Zyklop Software) (Disc 2) (1997).iso / misc / coding / letterzm / lzoon.asm < prev    next >
Assembly Source File  |  1996-03-29  |  4KB  |  173 lines

  1. model tiny
  2. codeseg
  3. .386
  4. char_pos=40  ;40 from left border
  5. num_char = offset end_dial - offset dial
  6.  
  7. org 100h  
  8. start:
  9. mov ax,0a000h
  10. mov es,ax
  11.  
  12. mov ax,13h
  13. int 10h     ;std-vga-mode
  14. xor dx,dx   ;dx is char-pointer
  15. zoomagain:   
  16.  
  17. ;del_char
  18. xor di,di
  19. xor eax,eax
  20. mov cx,16000
  21. rep stosd    ;just delete it all
  22. ;del_char end
  23.  
  24. mov bp,2  ;first char is 2x2 
  25. doitagain:
  26. lea bx,dial   ;pointer to loc. of display string
  27. add bx,dx    ;add the char-pointer to get current char
  28. push dx     ;save char-pointer to go on after this rountine
  29.  
  30. call disp_char
  31.  
  32.     mov    dx, 03dah
  33.        vrt:
  34.     in    al, dx
  35.     test    al, 8
  36.     jnz    short vrt
  37.        novrt:
  38.     in    al, dx
  39.     test    al, 8
  40.     jz    short novrt
  41.     mov    dx, 03dah
  42.        vrt2:
  43.     in    al, dx
  44.     test    al, 8
  45.     jnz    short vrt2
  46.        novrt2:
  47.     in    al, dx
  48.     test    al, 8
  49.     jz    short novrt2
  50.  
  51.  
  52. mov ah,1
  53. int 16h   ;the keyboard-check
  54. jnz short raushier   ;exit when ESC
  55. pop dx  ;restote char-pointer
  56.  
  57. inc bp   ;make it bigger
  58. cmp bp,28  ;till it's as big as screen
  59. jne short doitagain   ;print char 2x bigger
  60.  
  61. inc dx       ;position is display-string
  62. cmp dx,num_char   ;new chars till there are no more of them
  63. jne short zoomagain  ;print the next char
  64.  
  65. raushier:    ;goto dos
  66. mov ax,3
  67. int 10h
  68. lea dx,dial
  69. mov ah,9
  70. int 21h
  71. int 20h
  72.  
  73. disp_char:
  74. mov col,38   ;start color
  75. add col,dl   ; add char-pointer to make every char look different
  76. ;PRINT_CHAR
  77. mov si,char_pos             ; position in video meory
  78. mov al,[bx]  
  79. xor ah,ah
  80. shl ax,3
  81. mov di,0fa6eh        ; char-table start
  82. add di,ax
  83. mov dl,8             ; vertical pixels
  84. mk0:
  85. push ds
  86. mov ax,0f000h  
  87. push ax
  88. pop ds               ; char-table segment in ES
  89. mov al,ds:[di]  ; get first line
  90. pop ds
  91. mov dh,8             ; horizontal pixels 
  92. mk1: rcl al,1        ; get the bits
  93. jnc short nopixel              ; if zerro-bit -> don't set a pixel
  94.  
  95. ;set a pixel
  96. push ax
  97. mov al,col
  98. call setpoint
  99. pop ax
  100. jmp short mk3
  101.  
  102. ;kill pixel
  103. nopixel:
  104. push ax
  105. xor al,al
  106. call setpoint
  107. pop ax
  108.  
  109. mk3: add si,bp  ; next pixel
  110. dec dh               ; next horizontal pixel in char-table
  111. jnz short mk1              ; repeat till there are 8 pixels set
  112. inc di               ; next vertical line of the char
  113. mov ax,bp
  114. shl ax,3
  115. sub si,ax
  116. mov ax,320
  117. mov bx,bp
  118. dec bx
  119. push dx
  120. mul bx
  121. pop dx
  122. add si,ax
  123. dec col
  124. dec dl               
  125. jnz short mk0              ; repeat till there are all 8 lines set
  126. ;PRINT_CHAR-END
  127. ret
  128. ;end of disp_char
  129.  
  130. setpoint:
  131. push dx  ;SET_POINT
  132. mov bx,si
  133. mov dx,bp
  134. dec dx
  135. yloop:
  136. mov cx,bp
  137. xloop:
  138. mov byte ptr es:[bx],al
  139. inc bx
  140. loop xloop
  141. dec dx
  142. jz short not_again
  143. add bx,320
  144. sub bx,bp
  145. jmp short yloop
  146. not_again:
  147. pop dx   ;SET_POINT-END
  148. ret
  149.  
  150. dial db 'CALL TRIOPTIMUM NOW! +41313027385'
  151. end_dial:
  152. db '$'
  153. col db ?  
  154.  
  155. ends
  156. end start
  157.  
  158.                    █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█ █▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
  159.                    █ SysGod: Deímos █▄▄ █▄▄▄   TRiOPTiMUM   █
  160.                    █ USRobotics 28.8k █▄▄▄ █▄▄▄▄▄▄▄▄▄       █
  161.                    █ One Gigabyte Online █▄▄▄▄▄▄▄▄▄ █▄▄▄▄▄▄▄█
  162.                    █ Warez ■ Underground ■ Viriis █▄▄▄▄▄▄▄▄▄▄
  163.                    █    FNF WHQ ■ moz[IC]art Memberboard    █
  164.                    █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
  165.  
  166.                                  +41.313.027385
  167.  
  168.           The Sharom broke apart like an egg and began to drift down,
  169.          falling, an obsidian inferno. Darkness spread across the sky,
  170.                      swallowing the sun in unnatural night,
  171.                  as if the light of those flames was blackness.
  172.  
  173.